Case Study:
Web Browser

There are a number of browsers available for accessing the World Wide Web, including Netscape Navigator, Microsoft Internet Explorer, and Apple's Cyberdog suite of OpenDoc parts. All popular browsers have somewhat of a component architecture, because extensibility and a compound document architecture are required by the nature of the Web. In this section, we'll compare a large application with component extensions to a completely component-based solution. The subjects in this case study include:


Netscape Navigator

Navigator has an interesting architecture. It is a large application with considerable built-in functionality, but it is not a traditional monolithic application. What makes it interesting is that the user can extend the functionality in two ways. First, "Helper" applications can be specified to handle downloading and display of certain data or file types. Second, Netscape publishes an API for developers to build "plug-ins" that can display data directly in an area of the browser itself. The diagram below illustrates the architecture.


Navigator architecture


Cyberdog Architecture

Apple's Cyberdog architecture provides a completely component-based solution, in that every aspect of the information access is controlled by a different OpenDoc part. An overview of the Cyberdog architecture is shown below.


Cyberdog architecture

Cyberdog Screen Shots

Screen shots of some of the resulting documents are shown below.


Container with CyberButtons


Cyberdog Web browser


Cyberdog Mail


Cyberdog Notebook

Comparison

Navigator and Cyberdog each uses a component architecture, although they differ in their philosophy.

Navigator is a large, complex application that is extensible through the use of Helper applications, Netscape plug-ins, and Java applets. Navigator provides flexibility and extensibility with the plug-ins and applets, but only to a limited degree. Navigator reserves the most crucial functions to itself by building in support for mail, news, web browsing, and even the Java run-time engine directly into the Navigator application. This means that there is no way for end users or competing developers to plug-in a better news reader or better Web browser. The result is that Navigator is large and complex, and only partially extensible.

Cyberdog can also make use of Netscape plug-ins and Java applets through special parts that can provide an execution environment for them. Better yet, any of Cyberdog's part editors can be replaced by a third-party one. This means that even the most basic functions, such as Web browsing can be replaced. If the user does not want to use Apple's solution, then some other one can be used instead.

Cyberdog provides two other significant advantages. First, monolithic Helper applications are replaced by OpenDoc part editors and viewers. This means, for example, that the MoviePlayer application is replaced by the smaller KickStart MovieViewer. Perhaps the most important advantage is that desired parts of Cyberdog can be dropped into any container, including container applications like the upcoming ClarisWorks. The user can therefore add Internet access to drawing programs, word processors, and even programs for doing numeric calculations. Any application or part that provides OpenDoc container support automatically becomes Internet-enabled.

Cyberdog Value Added

Navigator broke new ground in providing extensibility through the use of Helper applications, plug-ins, and Java applets.

Cyberdog also allows that flexibility. Cyberdog goes much farther, however, by providing replaceability for all major functions, and by providing a mechanism for adding Internet access to any OpenDoc container. This means that you will be able to add Internet access to traditional applications such as the upcoming version of ClarisWorks, rather than Internet access being completely separated from your productivity applications, as is it today. This should allow the user much greater flexibility in getting their work done.


Cyberdog Programming Notes

Cyberdog API


Some important classes in the Cyberdog API are shown in the diagram below, copied from the Cyberdog Programmer's Kit on the Cyberdog 1.0 CD-ROM.


Some important Cyberdog classes
The major classes include:

ODF Support for Cyberdog

The ODF team is also developing support for creating Cyberdog part editors. See the OpenDoc SDK for details. Two class diagrams (produced using Object Master) for a preliminary version of the Cyberdog support library and sample part editor are shown below.


ODF Cyberdog support classes



ODF Cyberdog sample program

To Learn More

Details on writing Cyberdog part editors can be found in the Cyberdog Programmer's Kit on the Cyberdog 1.0 CD-ROM.

Step-by-step instructions on writing a simple Cyberdog part can be found on the Web in Developer University's new course entitled Get Started Programming with Cyberdog.

OverviewHands-OnTechnologies
ComponentsToolsCase Studies

Home